const { customRequire } = require('./utils.js');
const { BrowserWindow, ipcRenderer } = customRequire('electron');

/**
 * 发送日志信息到渲染进程
 * @param {string} message - 日志消息内容
 * @param {'info' | 'warning' | 'error'} [type='info'] - 日志类型，可选值为 'info'、'warning'、'error'，默认为 'info'
 * @param {string} [details] - 日志详细信息，可选
 */
const sendLogToRenderer = (message, type = 'info', details) => {
    console.log('[SEND LOG]', {message, type, details});
    if (!message || typeof message !== 'string') {
        console.error('Invalid log message:', message);
        message = `[Invalid Message] ${typeof message}`;
    }
    const logData = { 
        message: message || 'empty message',
        type: type.toLowerCase() === 'warning' ? 'warn' : type, // 修正类型匹配主进程枚举
        details: details || '',
        time: new Date().toLocaleTimeString()
    };
    
    if (process.type === 'browser') { // 主进程
        console.log('[MAIN LOG]', logData);
        BrowserWindow.getAllWindows().forEach(win => {
            win.webContents.send('log-message', logData);
        });
    } else { // 渲染进程
        console.log('[RENDER LOG]', logData);
        ipcRenderer.send('log-message', logData);
    }
};

module.exports = { sendLogToRenderer };